package com.ctsi.ssdc.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.ctsi.ssdc.annotation.AutoId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.ZonedDateTime;

/**
 * @author ctsi-biyi-generator
*/
@ApiModel(description = "LitemallOrder")
@TableName("litemall_order")
public class LitemallOrder extends Model<LitemallOrder> implements Serializable {
    /**
     * @Fields id 
     */
    @ApiModelProperty("")
    @AutoId(primaryKey = "id")
    @JsonSerialize(using = ToStringSerializer.class)
    @TableId(value="id")
    @TableField(value="id")
    private Integer id;

    /**
     * @Fields userId 用户表的用户ID
     */
    @ApiModelProperty("userId")
    @TableField(value="user_id")
    private Integer userId;

    /**
     * @Fields orderSn 订单编号
     */
    @ApiModelProperty("orderSn")
    @TableField(value="order_sn")
    private String orderSn;

    /**
     * @Fields orderStatus 订单状态
     */
    @ApiModelProperty("orderStatus")
    @TableField(value="order_status")
    private Short orderStatus;

    /**
     * @Fields aftersaleStatus 售后状态，0是可申请，1是用户已申请，2是管理员审核通过，3是管理员退款成功，4是管理员审核拒绝，5是用户已取消
     */
    @ApiModelProperty("aftersaleStatus")
    @TableField(value="aftersale_status")
    private Short aftersaleStatus;

    /**
     * @Fields consignee 收货人名称
     */
    @ApiModelProperty("consignee")
    @TableField(value="consignee")
    private String consignee;

    /**
     * @Fields mobile 收货人手机号
     */
    @ApiModelProperty("mobile")
    @TableField(value="mobile")
    private String mobile;

    /**
     * @Fields address 收货具体地址
     */
    @ApiModelProperty("address")
    @TableField(value="address")
    private String address;

    /**
     * @Fields message 用户订单留言
     */
    @ApiModelProperty("message")
    @TableField(value="message")
    private String message;

    /**
     * @Fields goodsPrice 商品总费用
     */
    @ApiModelProperty("goodsPrice")
    @TableField(value="goods_price")
    private BigDecimal goodsPrice;

    /**
     * @Fields freightPrice 配送费用
     */
    @ApiModelProperty("freightPrice")
    @TableField(value="freight_price")
    private BigDecimal freightPrice;

    /**
     * @Fields couponPrice 优惠券减免
     */
    @ApiModelProperty("couponPrice")
    @TableField(value="coupon_price")
    private BigDecimal couponPrice;

    /**
     * @Fields integralPrice 用户积分减免
     */
    @ApiModelProperty("integralPrice")
    @TableField(value="integral_price")
    private BigDecimal integralPrice;

    /**
     * @Fields grouponPrice 团购优惠价减免
     */
    @ApiModelProperty("grouponPrice")
    @TableField(value="groupon_price")
    private BigDecimal grouponPrice;

    /**
     * @Fields orderPrice 订单费用， = goods_price + freight_price - coupon_price
     */
    @ApiModelProperty("orderPrice")
    @TableField(value="order_price")
    private BigDecimal orderPrice;

    /**
     * @Fields actualPrice 实付费用， = order_price - integral_price
     */
    @ApiModelProperty("actualPrice")
    @TableField(value="actual_price")
    private BigDecimal actualPrice;

    /**
     * @Fields payId 微信付款编号
     */
    @ApiModelProperty("payId")
    @TableField(value="pay_id")
    private String payId;

    /**
     * @Fields payTime 微信付款时间
     */
    @ApiModelProperty("payTime")
    @TableField(value="pay_time")
    private ZonedDateTime payTime;

    /**
     * @Fields shipSn 发货编号
     */
    @ApiModelProperty("shipSn")
    @TableField(value="ship_sn")
    private String shipSn;

    /**
     * @Fields shipChannel 发货快递公司
     */
    @ApiModelProperty("shipChannel")
    @TableField(value="ship_channel")
    private String shipChannel;

    /**
     * @Fields shipTime 发货开始时间
     */
    @ApiModelProperty("shipTime")
    @TableField(value="ship_time")
    private ZonedDateTime shipTime;

    /**
     * @Fields refundAmount 实际退款金额，（有可能退款金额小于实际支付金额）
     */
    @ApiModelProperty("refundAmount")
    @TableField(value="refund_amount")
    private BigDecimal refundAmount;

    /**
     * @Fields refundType 退款方式
     */
    @ApiModelProperty("refundType")
    @TableField(value="refund_type")
    private String refundType;

    /**
     * @Fields refundContent 退款备注
     */
    @ApiModelProperty("refundContent")
    @TableField(value="refund_content")
    private String refundContent;

    /**
     * @Fields refundTime 退款时间
     */
    @ApiModelProperty("refundTime")
    @TableField(value="refund_time")
    private ZonedDateTime refundTime;

    /**
     * @Fields confirmTime 用户确认收货时间
     */
    @ApiModelProperty("confirmTime")
    @TableField(value="confirm_time")
    private ZonedDateTime confirmTime;

    /**
     * @Fields comments 待评价订单商品数量
     */
    @ApiModelProperty("comments")
    @TableField(value="comments")
    private Short comments;

    /**
     * @Fields endTime 订单关闭时间
     */
    @ApiModelProperty("endTime")
    @TableField(value="end_time")
    private ZonedDateTime endTime;

    /**
     * @Fields addTime 创建时间
     */
    @ApiModelProperty("addTime")
    @TableField(value="add_time")
    private ZonedDateTime addTime;

    /**
     * @Fields updateTime 更新时间
     */
    @ApiModelProperty("updateTime")
    @TableField(value="update_time")
    private ZonedDateTime updateTime;

    /**
     * @Fields deleted 逻辑删除
     */
    @ApiModelProperty("deleted")
    @TableField(value="deleted")
    private Boolean deleted;

    private static final long serialVersionUID = 1L;

    /** 
     * @return id 
     */
    public Integer getId() {
        return id;
    }

    /**
     * @param id 
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /** 
     * @return user_id 用户表的用户ID
     */
    public Integer getUserId() {
        return userId;
    }

    /**
     * @param userId 用户表的用户ID
     */
    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    /** 
     * @return order_sn 订单编号
     */
    public String getOrderSn() {
        return orderSn;
    }

    /**
     * @param orderSn 订单编号
     */
    public void setOrderSn(String orderSn) {
        this.orderSn = orderSn == null ? null : orderSn.trim();
    }

    /** 
     * @return order_status 订单状态
     */
    public Short getOrderStatus() {
        return orderStatus;
    }

    /**
     * @param orderStatus 订单状态
     */
    public void setOrderStatus(Short orderStatus) {
        this.orderStatus = orderStatus;
    }

    /** 
     * @return aftersale_status 售后状态，0是可申请，1是用户已申请，2是管理员审核通过，3是管理员退款成功，4是管理员审核拒绝，5是用户已取消
     */
    public Short getAftersaleStatus() {
        return aftersaleStatus;
    }

    /**
     * @param aftersaleStatus 售后状态，0是可申请，1是用户已申请，2是管理员审核通过，3是管理员退款成功，4是管理员审核拒绝，5是用户已取消
     */
    public void setAftersaleStatus(Short aftersaleStatus) {
        this.aftersaleStatus = aftersaleStatus;
    }

    /** 
     * @return consignee 收货人名称
     */
    public String getConsignee() {
        return consignee;
    }

    /**
     * @param consignee 收货人名称
     */
    public void setConsignee(String consignee) {
        this.consignee = consignee == null ? null : consignee.trim();
    }

    /** 
     * @return mobile 收货人手机号
     */
    public String getMobile() {
        return mobile;
    }

    /**
     * @param mobile 收货人手机号
     */
    public void setMobile(String mobile) {
        this.mobile = mobile == null ? null : mobile.trim();
    }

    /** 
     * @return address 收货具体地址
     */
    public String getAddress() {
        return address;
    }

    /**
     * @param address 收货具体地址
     */
    public void setAddress(String address) {
        this.address = address == null ? null : address.trim();
    }

    /** 
     * @return message 用户订单留言
     */
    public String getMessage() {
        return message;
    }

    /**
     * @param message 用户订单留言
     */
    public void setMessage(String message) {
        this.message = message == null ? null : message.trim();
    }

    /** 
     * @return goods_price 商品总费用
     */
    public BigDecimal getGoodsPrice() {
        return goodsPrice;
    }

    /**
     * @param goodsPrice 商品总费用
     */
    public void setGoodsPrice(BigDecimal goodsPrice) {
        this.goodsPrice = goodsPrice;
    }

    /** 
     * @return freight_price 配送费用
     */
    public BigDecimal getFreightPrice() {
        return freightPrice;
    }

    /**
     * @param freightPrice 配送费用
     */
    public void setFreightPrice(BigDecimal freightPrice) {
        this.freightPrice = freightPrice;
    }

    /** 
     * @return coupon_price 优惠券减免
     */
    public BigDecimal getCouponPrice() {
        return couponPrice;
    }

    /**
     * @param couponPrice 优惠券减免
     */
    public void setCouponPrice(BigDecimal couponPrice) {
        this.couponPrice = couponPrice;
    }

    /** 
     * @return integral_price 用户积分减免
     */
    public BigDecimal getIntegralPrice() {
        return integralPrice;
    }

    /**
     * @param integralPrice 用户积分减免
     */
    public void setIntegralPrice(BigDecimal integralPrice) {
        this.integralPrice = integralPrice;
    }

    /** 
     * @return groupon_price 团购优惠价减免
     */
    public BigDecimal getGrouponPrice() {
        return grouponPrice;
    }

    /**
     * @param grouponPrice 团购优惠价减免
     */
    public void setGrouponPrice(BigDecimal grouponPrice) {
        this.grouponPrice = grouponPrice;
    }

    /** 
     * @return order_price 订单费用， = goods_price + freight_price - coupon_price
     */
    public BigDecimal getOrderPrice() {
        return orderPrice;
    }

    /**
     * @param orderPrice 订单费用， = goods_price + freight_price - coupon_price
     */
    public void setOrderPrice(BigDecimal orderPrice) {
        this.orderPrice = orderPrice;
    }

    /** 
     * @return actual_price 实付费用， = order_price - integral_price
     */
    public BigDecimal getActualPrice() {
        return actualPrice;
    }

    /**
     * @param actualPrice 实付费用， = order_price - integral_price
     */
    public void setActualPrice(BigDecimal actualPrice) {
        this.actualPrice = actualPrice;
    }

    /** 
     * @return pay_id 微信付款编号
     */
    public String getPayId() {
        return payId;
    }

    /**
     * @param payId 微信付款编号
     */
    public void setPayId(String payId) {
        this.payId = payId == null ? null : payId.trim();
    }

    /** 
     * @return pay_time 微信付款时间
     */
    public ZonedDateTime getPayTime() {
        return payTime;
    }

    /**
     * @param payTime 微信付款时间
     */
    public void setPayTime(ZonedDateTime payTime) {
        this.payTime = payTime;
    }

    /** 
     * @return ship_sn 发货编号
     */
    public String getShipSn() {
        return shipSn;
    }

    /**
     * @param shipSn 发货编号
     */
    public void setShipSn(String shipSn) {
        this.shipSn = shipSn == null ? null : shipSn.trim();
    }

    /** 
     * @return ship_channel 发货快递公司
     */
    public String getShipChannel() {
        return shipChannel;
    }

    /**
     * @param shipChannel 发货快递公司
     */
    public void setShipChannel(String shipChannel) {
        this.shipChannel = shipChannel == null ? null : shipChannel.trim();
    }

    /** 
     * @return ship_time 发货开始时间
     */
    public ZonedDateTime getShipTime() {
        return shipTime;
    }

    /**
     * @param shipTime 发货开始时间
     */
    public void setShipTime(ZonedDateTime shipTime) {
        this.shipTime = shipTime;
    }

    /** 
     * @return refund_amount 实际退款金额，（有可能退款金额小于实际支付金额）
     */
    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    /**
     * @param refundAmount 实际退款金额，（有可能退款金额小于实际支付金额）
     */
    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    /** 
     * @return refund_type 退款方式
     */
    public String getRefundType() {
        return refundType;
    }

    /**
     * @param refundType 退款方式
     */
    public void setRefundType(String refundType) {
        this.refundType = refundType == null ? null : refundType.trim();
    }

    /** 
     * @return refund_content 退款备注
     */
    public String getRefundContent() {
        return refundContent;
    }

    /**
     * @param refundContent 退款备注
     */
    public void setRefundContent(String refundContent) {
        this.refundContent = refundContent == null ? null : refundContent.trim();
    }

    /** 
     * @return refund_time 退款时间
     */
    public ZonedDateTime getRefundTime() {
        return refundTime;
    }

    /**
     * @param refundTime 退款时间
     */
    public void setRefundTime(ZonedDateTime refundTime) {
        this.refundTime = refundTime;
    }

    /** 
     * @return confirm_time 用户确认收货时间
     */
    public ZonedDateTime getConfirmTime() {
        return confirmTime;
    }

    /**
     * @param confirmTime 用户确认收货时间
     */
    public void setConfirmTime(ZonedDateTime confirmTime) {
        this.confirmTime = confirmTime;
    }

    /** 
     * @return comments 待评价订单商品数量
     */
    public Short getComments() {
        return comments;
    }

    /**
     * @param comments 待评价订单商品数量
     */
    public void setComments(Short comments) {
        this.comments = comments;
    }

    /** 
     * @return end_time 订单关闭时间
     */
    public ZonedDateTime getEndTime() {
        return endTime;
    }

    /**
     * @param endTime 订单关闭时间
     */
    public void setEndTime(ZonedDateTime endTime) {
        this.endTime = endTime;
    }

    /** 
     * @return add_time 创建时间
     */
    public ZonedDateTime getAddTime() {
        return addTime;
    }

    /**
     * @param addTime 创建时间
     */
    public void setAddTime(ZonedDateTime addTime) {
        this.addTime = addTime;
    }

    /** 
     * @return update_time 更新时间
     */
    public ZonedDateTime getUpdateTime() {
        return updateTime;
    }

    /**
     * @param updateTime 更新时间
     */
    public void setUpdateTime(ZonedDateTime updateTime) {
        this.updateTime = updateTime;
    }

    /** 
     * @return deleted 逻辑删除
     */
    public Boolean getDeleted() {
        return deleted;
    }

    /**
     * @param deleted 逻辑删除
     */
    public void setDeleted(Boolean deleted) {
        this.deleted = deleted;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        LitemallOrder other = (LitemallOrder) that;
        return (this.getId() == null ? other.getId() == null :
				 this.getId().equals(other.getId()))
            && (this.getUserId() == null ? other.getUserId() == null :
				 this.getUserId().equals(other.getUserId()))
            && (this.getOrderSn() == null ? other.getOrderSn() == null :
				 this.getOrderSn().equals(other.getOrderSn()))
            && (this.getOrderStatus() == null ? other.getOrderStatus() == null :
				 this.getOrderStatus().equals(other.getOrderStatus()))
            && (this.getAftersaleStatus() == null ? other.getAftersaleStatus() == null :
				 this.getAftersaleStatus().equals(other.getAftersaleStatus()))
            && (this.getConsignee() == null ? other.getConsignee() == null :
				 this.getConsignee().equals(other.getConsignee()))
            && (this.getMobile() == null ? other.getMobile() == null :
				 this.getMobile().equals(other.getMobile()))
            && (this.getAddress() == null ? other.getAddress() == null :
				 this.getAddress().equals(other.getAddress()))
            && (this.getMessage() == null ? other.getMessage() == null :
				 this.getMessage().equals(other.getMessage()))
            && (this.getGoodsPrice() == null ? other.getGoodsPrice() == null :
				 this.getGoodsPrice().equals(other.getGoodsPrice()))
            && (this.getFreightPrice() == null ? other.getFreightPrice() == null :
				 this.getFreightPrice().equals(other.getFreightPrice()))
            && (this.getCouponPrice() == null ? other.getCouponPrice() == null :
				 this.getCouponPrice().equals(other.getCouponPrice()))
            && (this.getIntegralPrice() == null ? other.getIntegralPrice() == null :
				 this.getIntegralPrice().equals(other.getIntegralPrice()))
            && (this.getGrouponPrice() == null ? other.getGrouponPrice() == null :
				 this.getGrouponPrice().equals(other.getGrouponPrice()))
            && (this.getOrderPrice() == null ? other.getOrderPrice() == null :
				 this.getOrderPrice().equals(other.getOrderPrice()))
            && (this.getActualPrice() == null ? other.getActualPrice() == null :
				 this.getActualPrice().equals(other.getActualPrice()))
            && (this.getPayId() == null ? other.getPayId() == null :
				 this.getPayId().equals(other.getPayId()))
            && (this.getPayTime() == null ? other.getPayTime() == null :
				 this.getPayTime().equals(other.getPayTime()))
            && (this.getShipSn() == null ? other.getShipSn() == null :
				 this.getShipSn().equals(other.getShipSn()))
            && (this.getShipChannel() == null ? other.getShipChannel() == null :
				 this.getShipChannel().equals(other.getShipChannel()))
            && (this.getShipTime() == null ? other.getShipTime() == null :
				 this.getShipTime().equals(other.getShipTime()))
            && (this.getRefundAmount() == null ? other.getRefundAmount() == null :
				 this.getRefundAmount().equals(other.getRefundAmount()))
            && (this.getRefundType() == null ? other.getRefundType() == null :
				 this.getRefundType().equals(other.getRefundType()))
            && (this.getRefundContent() == null ? other.getRefundContent() == null :
				 this.getRefundContent().equals(other.getRefundContent()))
            && (this.getRefundTime() == null ? other.getRefundTime() == null :
				 this.getRefundTime().equals(other.getRefundTime()))
            && (this.getConfirmTime() == null ? other.getConfirmTime() == null :
				 this.getConfirmTime().equals(other.getConfirmTime()))
            && (this.getComments() == null ? other.getComments() == null :
				 this.getComments().equals(other.getComments()))
            && (this.getEndTime() == null ? other.getEndTime() == null :
				 this.getEndTime().equals(other.getEndTime()))
            && (this.getAddTime() == null ? other.getAddTime() == null :
				 this.getAddTime().equals(other.getAddTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null :
				 this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getDeleted() == null ? other.getDeleted() == null :
				 this.getDeleted().equals(other.getDeleted()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
        result = prime * result + ((getOrderSn() == null) ? 0 : getOrderSn().hashCode());
        result = prime * result + ((getOrderStatus() == null) ? 0 : getOrderStatus().hashCode());
        result = prime * result + ((getAftersaleStatus() == null) ? 0 : getAftersaleStatus().hashCode());
        result = prime * result + ((getConsignee() == null) ? 0 : getConsignee().hashCode());
        result = prime * result + ((getMobile() == null) ? 0 : getMobile().hashCode());
        result = prime * result + ((getAddress() == null) ? 0 : getAddress().hashCode());
        result = prime * result + ((getMessage() == null) ? 0 : getMessage().hashCode());
        result = prime * result + ((getGoodsPrice() == null) ? 0 : getGoodsPrice().hashCode());
        result = prime * result + ((getFreightPrice() == null) ? 0 : getFreightPrice().hashCode());
        result = prime * result + ((getCouponPrice() == null) ? 0 : getCouponPrice().hashCode());
        result = prime * result + ((getIntegralPrice() == null) ? 0 : getIntegralPrice().hashCode());
        result = prime * result + ((getGrouponPrice() == null) ? 0 : getGrouponPrice().hashCode());
        result = prime * result + ((getOrderPrice() == null) ? 0 : getOrderPrice().hashCode());
        result = prime * result + ((getActualPrice() == null) ? 0 : getActualPrice().hashCode());
        result = prime * result + ((getPayId() == null) ? 0 : getPayId().hashCode());
        result = prime * result + ((getPayTime() == null) ? 0 : getPayTime().hashCode());
        result = prime * result + ((getShipSn() == null) ? 0 : getShipSn().hashCode());
        result = prime * result + ((getShipChannel() == null) ? 0 : getShipChannel().hashCode());
        result = prime * result + ((getShipTime() == null) ? 0 : getShipTime().hashCode());
        result = prime * result + ((getRefundAmount() == null) ? 0 : getRefundAmount().hashCode());
        result = prime * result + ((getRefundType() == null) ? 0 : getRefundType().hashCode());
        result = prime * result + ((getRefundContent() == null) ? 0 : getRefundContent().hashCode());
        result = prime * result + ((getRefundTime() == null) ? 0 : getRefundTime().hashCode());
        result = prime * result + ((getConfirmTime() == null) ? 0 : getConfirmTime().hashCode());
        result = prime * result + ((getComments() == null) ? 0 : getComments().hashCode());
        result = prime * result + ((getEndTime() == null) ? 0 : getEndTime().hashCode());
        result = prime * result + ((getAddTime() == null) ? 0 : getAddTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getDeleted() == null) ? 0 : getDeleted().hashCode());
        return result;
    }
}